1 线性可分支持向量机 硬间隔最大化
1.1 线性可分支持向量机
对于一个线性可分的二分类问题, 感知机 用一个超平面分割空间中的点, 以误分类最小为策略寻找超平面, 解可以有多个; 但是线性可分支持向量机用间隔最大化求出最优的分离超平面, 解只有一个. 这样的意义是, 对于即是最难区分的点 (最靠近分离超平面的点), 也有足够高的置信度将它成功分类.
给定线性可分的训练数据集, 通过间隔最大化或等价地求解相应的凸二次规划问题学习得到的分离超平面为以及对应的决策函数称为线性可分支持向量机.
1.2 函数间隔 几何间隔
为了表示点距离超平面的远近, 引入函数间隔.
给定 , . 定义 和样本点 的函数间隔为 定义 和 的函数间隔为
如果等比例地将变为, 则超平面不变, 但函数间隔发生了改变. 为了解决这一点, 可以加入限制 (如). 这样约束条件下的间隔称为几何间隔. 也即, 几何间隔的定义式为
1.3 间隔最大化
1.3.1 最大间隔分离超平面
为了寻找几何间隔最大化, 考察如下的优化问题
(要求几何间隔至少是, 也即有足够的置信度, 并寻找这样的置信度的最大值.) 问题等价于为
需要指出, 的取值不影响问题的解, 因为随时可以用来调整, 且不会改变问题本身. 因此, 取即可. 由注意到最大化与最小化等价, 因此将问题转化为凸二次规划问题
输入 线性可分数据集,
输出 最大间隔分离超平面, 分离决策函数
- 求解优化问题 (1.6), 得到最优解.
- 由此得到超平面 和分离决策函数 .
1.3.2 最大间隔分离超平面的存在唯一性
若线性可分, 则完全正确分类的最大间隔分离超平面存在且唯一.
1.3.3 支持向量 间隔边界
将与分离超平面距离最近的样本点实例称为支持向量. 对于支持向量, 需要使这里的约束条件成立, 也即 . 也即, 对 的正例点, 支持向量在 上; 对 的负例点, 在 上.
因此, 在超平面的附近由形成了一条条带, 没有样本点在其中. 将的距离称为间隔, 称为间隔边界.
可以注意到, 间隔的位置只会随着支持向量而改变, 与其他实例点无关. 支持向量机由很少的重要的训练样本确定.
1.4 学习的对偶算法
对偶问题的好处是更容易求解, 和更容易推广到非线性分类问题.
首先构建 Lagrange 函数
其中 . 对偶问题 为极大极小问题
- 求. 令
回代入 (1.7), 得
(黄色项与前面合并, 绿色项为.)
- 求 . 等价于
等价于
输入 线性可分
输出 分离超平面, 决策函数
- 求解 (1.8), 得到最优解 ;
- 计算, 选择的一个正分量(即寻找支持向量). 计算;
- 得到超平面和分离决策函数.
满足 (1.8) 、 的样本点的实例 可以作为支持向量的另一等价定义. 事实上, 由 KKT条件 知
2 线性支持向量机 软间隔最大化
2.1 线性支持向量机
如何求解线性不可分问题? 需要把硬间隔变成软间隔.
给定设定同上, 但不是线性可分的. 引入松弛变量, 将约束条件变为
但是, 不允许无限制的小, 因此需要支付代价(称为惩罚参数), 目标函数为
目标函数的意义是使最小间隔尽可能大(对应尽可能小, 参见 (1.6)), 误分类点个数尽可能小. 因此等价于如下凸二次规划
输入 线性不可分的
输出 最大软间隔分离超平面, 分离决策函数
求解 (2.2), 得到分离超平面和.
2.2 学习的对偶算法
(2.2) 的 Lagrange 函数为
其中. 考虑极大极小问题.
- 内层: 令
得
回代得
- 外层 对偶问题即为
消去, 就得到了
设是对偶问题 (2.3) 的解, 若存在的分量, 则原始问题 (2.2) 的解由下式求得:
原始问题的解满足 KKT条件, 代入整理后得到结论.
输入
输出 分离超平面和分类决策函数
- 选择惩罚参数, 求解 (2.3), 得到最优解;
- 由 定理2.1 得到;
- 求得分离超平面和分离决策函数.
2.3 支持向量
此时相应的, 也有 (软间隔的) 支持向量.
|
|
|
|
间隔边界 |
-- |
|
-- |
分类正确, 在间隔边界与分离超平面之间 |
|
-- |
在分离超平面上 |
|
-- |
分类错误, 在误分类一侧 |
2.4 合页损失函数
定义 为 合页损失函数 (hinge loss function).
线性支持向量机除了依据软间隔最大化寻找分离超平面的解释之外, 还可以用最小化目标函数 来解释. 这里的第一项是经验损失. 也即正确分类时确信度 , 损失为 . 第二项是正则化项.
原始优化问题 (2.2) 等价于优化问题
将 (2.2) 改写为 2.5. 令 我们把 (2.2) 再写一遍 这样 满足 (2). 下面只需说明它满足 (1). 当 , 则 ; 当 时, 有 . 因此再令 , (0) 就等价于 因此与 (2.5) 等价; 反之亦然.

合页损失函数和 0-1 损失函数图像如上所示. 它可以看作 0-1 损失函数的上界, 在光滑性方面做出了优化.
3 非线性支持向量机 核函数
3.1 核技巧
3.1.1 非线性分类问题
如果一个二分类数据集需要用的超曲面来划分, 则称为非线性可分问题.
目标是使用一个非线性变换, 将非线性问题转化为线性问题.
例如, 超曲面是一个椭圆. 设原空间; 新空间. 定义映射
经过变换, 原空间的椭圆变换为新空间的直线. 因此问题的关键在于映射的寻找.
3.1.2 核函数的定义
设是输入空间, 是特征空间. 如果存在, 使得所有的, 函数满足条件
则称为核函数, 为映射函数. 这里的乘积表示内积.
核技巧的想法是, 只考虑, 而不去显式地定义.
对于给定的核函数, 并不一定唯一.
设
,
, 找出
.
- 取, 则可取映射
- 取, 可取
- 取, 可取
3.1.3 核技巧在支持向量机中的应用
用核函数来代替对偶问题 (2.3) 的损失函数:
对于分类决策函数, 由 决策函数 和 (2.4), 得
在变换下的新定义空间中学习线性支持向量机.
3.2 正定核
通常所说的核函数指正定核函数. 我们关心满足怎样的条件, 函数 可以用 拆分, 以便是核函数. 首先给出结论
是对称函数, 则 是正定核函数的充分必要条件是 , Gram 矩阵 是半正定矩阵.
这样我们可以给出正定核的等价定义(所以"正定"得名于此)
, 是定义在 上的对称函数. 如果 , 的 Gram 矩阵半正定, 则 是正定核.
在实际应用中, 很难证明: 任意给定有限的 都有 是半正定的.
3.3 常用核函数
关于核函数可以参见这个概率论笔记.
3.3.1 Polynomial Kernel Function
对应分类决策函数为3.3.2 Gaussian Kernel Function (RBF)
3.3.3 String Kernel Function
3.4 非线性支持向量机
只需利用核技巧进行替换, 就可以得到非线性支持向量机.
从非线性分类训练集, 通过核函数和软间隔最大化或者凸二次规划(2.3), 学习得到分类决策函数 的模型成为非线性支持向量机.
然后总结一下学习算法
输入
输出 分类决策函数
- 选取适当的 和参数 , 构造 (在 (2.3) 的基础上简单修改) 得到最优解 .
- 选择 的一个正分量 , 计算
- 构造决策函数 (3.2).
4 序列最小最优化算法
输入 ; 精度 .
输出 近似解 .
- 选取初值 , 令 .
- 选取优化变量 , 解析求解两个变量的最优化问题 得到最优解 , 更新 .
- 若在精度 范围内满足停机条件 其中 则转到 4; 否则 , 转到 2.
- .